# !/usr/usuari/des python
#  -*- coding: utf-8 -*-
"""
@Author        : itgnay
@Time          : 2022/12/18 20:17
@FileName      : 最大值最小值.py
@LastEditors   : None
@Editors       : PyCharm
"""
import time

"""分治思想"""
"""总结：比起蛮力求解（也就是直接遍历求数组最大值），这里分治法的时间复杂度其实并没有得到优化
    但是这个程序很好地体现了分治法的思想和解题步骤，划分、求解和合并。"""
arr = [3, 7, 2, 6, 4, 77, 312, 43, 666, 63, 13, 9]


def get_max(arr, left, right):
    if len(arr[left:right + 1]) == 0:
        return None
    if (right - left) <= 2:
        if arr[right] > arr[left]:
            return arr[right]
        return arr[left]
    middle = int((left + right) / 2)
    max_left = get_max(arr, left, middle - 1)
    max_right = get_max(arr, middle, right)
    if max_left > max_right:
        return max_left
    return max_right


print(get_max(arr, 0, len(arr) - 1))
